home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr22 / ctest259.zip / CACHETST.ASM < prev    next >
Assembly Source File  |  1991-12-07  |  10KB  |  368 lines

  1.             .386p
  2.  
  3.  
  4. STRT_TIM    MACRO
  5.             MOV     AL, 0B4h             ; Clock 2 als
  6.             OUT     43h, AL              ; Rate Generator programmieren
  7.             XOR     AL, AL               ; Null laden
  8.             OUT     42h, AL              ; Clock 2
  9.             OUT     42h, AL              ; nullsetzen
  10.             ENDM
  11.  
  12. STOP_TIM    MACRO
  13.             MOV     AL, 80h              ; Timer 2
  14.             OUT     43h, AL              ; sofort latchen
  15.             IN      AL, 42h              ; LSB auslesen
  16.             MOV     BL, AL               ; LSB retten
  17.             IN      AL, 42h              ; MSB auslesen
  18.             MOV     BH, AL               ; MSB retten
  19.             NEG     BX                   ; negieren für Timercounts
  20.             ENDM
  21.  
  22.  
  23. CODE        SEGMENT BYTE USE16 PUBLIC BYTE 'CODE'
  24.             ASSUME  CS: CODE
  25.  
  26.             PUBLIC  TestCache, TestCach286
  27.  
  28.  
  29. TEST64K_D   PROC    NEAR
  30.             MOV     ES, AX
  31.             MOV     DS, AX
  32.             XOR     BX, BX
  33.             MOV     SI, BX
  34.             MOV     DI, BX
  35.             MOV     CX, DX
  36.             REP     MOVSD
  37.             MOV     SI, BX
  38.             MOV     DI, BX
  39.             MOV     CX, DX
  40.             STRT_TIM
  41.             REP     MOVSD
  42.             STOP_TIM
  43.             RET
  44. TEST64K_D   ENDP
  45.  
  46.  
  47. TEST64K_W   PROC    NEAR
  48.             MOV     ES, AX
  49.             MOV     DS, AX
  50.             XOR     BX, BX
  51.             MOV     SI, BX
  52.             MOV     DI, BX
  53.             MOV     CX, DX
  54.             REP     MOVSW
  55.             MOV     SI, BX
  56.             MOV     DI, BX
  57.             MOV     CX, DX
  58.             STRT_TIM
  59.             REP     MOVSW
  60.             STOP_TIM
  61.             RET
  62. TEST64K_W   ENDP
  63.  
  64.  
  65. TEST128K_D  PROC    NEAR
  66.             MOV     DX, AX
  67.             MOV     ES, AX
  68.             MOV     DS, AX
  69.             XOR     BX, BX
  70.             MOV     SI, BX
  71.             MOV     DI, BX
  72.             MOV     CX, 16384
  73.             REP     MOVSD
  74.             MOV     AX, DX
  75.             ADD     AX, 1000h
  76.             MOV     ES, AX
  77.             MOV     DS, AX
  78.             MOV     CX, 16384
  79.             REP     MOVSD
  80.             MOV     ES, DX
  81.             MOV     DS, DX
  82.             MOV     CX, 16384
  83.             STRT_TIM
  84.             REP     MOVSD
  85.             MOV     AX, DX
  86.             ADD     AX, 1000h
  87.             MOV     ES, AX
  88.             MOV     DS, AX
  89.             MOV     CX, 16384
  90.             REP     MOVSD
  91.             STOP_TIM
  92.             RET
  93. TEST128K_D  ENDP
  94.  
  95.  
  96. TEST256K_D  PROC    NEAR
  97.             MOV     DX, AX
  98.             MOV     ES, AX
  99.             MOV     DS, AX
  100.             XOR     BX, BX
  101.             MOV     SI, BX
  102.             MOV     DI, BX
  103.             MOV     CX, 16384
  104.             REP     MOVSD
  105.             MOV     AX, DX
  106.             ADD     AX, 1000h
  107.             MOV     ES, AX
  108.             MOV     DS, AX
  109.             MOV     CX, 16384
  110.             REP     MOVSD
  111.             MOV     AX, DX
  112.             ADD     AX, 2000h
  113.             MOV     ES, AX
  114.             MOV     DS, AX
  115.             MOV     CX, 16384
  116.             REP     MOVSD
  117.             MOV     AX, DX
  118.             ADD     AX, 3000h
  119.             MOV     ES, AX
  120.             MOV     DS, AX
  121.             MOV     CX, 16384
  122.             REP     MOVSD
  123.             MOV     ES, DX
  124.             MOV     DS, DX
  125.             MOV     CX, 16384
  126.             STRT_TIM
  127.             REP     MOVSD
  128.             MOV     AX, DX
  129.             ADD     AX, 1000h
  130.             MOV     ES, AX
  131.             MOV     DS, AX
  132.             MOV     CX, 16384
  133.             REP     MOVSD
  134.             MOV     AX, DX
  135.             ADD     AX, 2000h
  136.             MOV     ES, AX
  137.             MOV     DS, AX
  138.             MOV     CX, 16384
  139.             REP     MOVSD
  140.             MOV     AX, DX
  141.             ADD     AX, 3000h
  142.             MOV     ES, AX
  143.             MOV     DS, AX
  144.             MOV     CX, 16384
  145.             REP     MOVSD
  146.             STOP_TIM
  147.             RET
  148. TEST256K_D  ENDP
  149.  
  150.  
  151. TEST512K_D  PROC    NEAR
  152.             MOV     DX, AX
  153.             MOV     ES, AX
  154.             MOV     DS, AX
  155.             XOR     BX, BX
  156.             MOV     SI, BX
  157.             MOV     DI, BX
  158.             MOV     CX, 16384
  159.             REP     MOVSD
  160.             MOV     AX, DX
  161.             ADD     AX, 1000h
  162.             MOV     ES, AX
  163.             MOV     DS, AX
  164.             MOV     CX, 16384
  165.             REP     MOVSD
  166.             MOV     AX, DX
  167.             ADD     AX, 2000h
  168.             MOV     ES, AX
  169.             MOV     DS, AX
  170.             MOV     CX, 16384
  171.             REP     MOVSD
  172.             MOV     AX, DX
  173.             ADD     AX, 3000h
  174.             MOV     ES, AX
  175.             MOV     DS, AX
  176.             MOV     CX, 16384
  177.             REP     MOVSD
  178.             MOV     AX, DX
  179.             ADD     AX, 4000h
  180.             MOV     ES, AX
  181.             MOV     DS, AX
  182.             MOV     CX, 16384
  183.             REP     MOVSD
  184.             MOV     AX, DX
  185.             ADD     AX, 5000h
  186.             MOV     ES, AX
  187.             MOV     DS, AX
  188.             MOV     CX, 16384
  189.             REP     MOVSD
  190.             MOV     AX, DX
  191.             ADD     AX, 6000h
  192.             MOV     ES, AX
  193.             MOV     DS, AX
  194.             MOV     CX, 16384
  195.             REP     MOVSD
  196.             MOV     AX, DX
  197.             ADD     AX, 7000h
  198.             MOV     ES, AX
  199.             MOV     DS, AX
  200.             MOV     CX, 16384
  201.             REP     MOVSD
  202.             MOV     ES, DX
  203.             MOV     DS, DX
  204.             MOV     CX, 16384
  205.             STRT_TIM
  206.             REP     MOVSD
  207.             MOV     AX, DX
  208.             ADD     AX, 1000h
  209.             MOV     ES, AX
  210.             MOV     DS, AX
  211.             MOV     CX, 16384
  212.             REP     MOVSD
  213.             MOV     AX, DX
  214.             ADD     AX, 2000h
  215.             MOV     ES, AX
  216.             MOV     DS, AX
  217.             MOV     CX, 16384
  218.             REP     MOVSD
  219.             MOV     AX, DX
  220.             ADD     AX, 3000h
  221.             MOV     ES, AX
  222.             MOV     DS, AX
  223.             MOV     CX, 16384
  224.             REP     MOVSD
  225.             MOV     AX, DX
  226.             ADD     AX, 4000h
  227.             MOV     ES, AX
  228.             MOV     DS, AX
  229.             MOV     CX, 16384
  230.             REP     MOVSD
  231.             MOV     AX, DX
  232.             ADD     AX, 5000h
  233.             MOV     ES, AX
  234.             MOV     DS, AX
  235.             MOV     CX, 16384
  236.             REP     MOVSD
  237.             MOV     AX, DX
  238.             ADD     AX, 6000h
  239.             MOV     ES, AX
  240.             MOV     DS, AX
  241.             MOV     CX, 16384
  242.             REP     MOVSD
  243.             MOV     AX, DX
  244.             ADD     AX, 7000h
  245.             MOV     ES, AX
  246.             MOV     DS, AX
  247.             MOV     CX, 16384
  248.             REP     MOVSD
  249.             STOP_TIM
  250.             RET
  251. TEST512K_D  ENDP
  252.  
  253. TestCache   PROC    FAR
  254.             PUSHF
  255.             PUSH    DS
  256.             CLI
  257.             CLD
  258.             IN      AL, 61h              ; Port B - System Control
  259.             AND     AL, 11111101b        ; Lautsprecher-Bit ausschalten
  260.             OR      AL, 1                ; Bit für Clock 2 anschalten
  261.             OUT     61h, AL              ; und auf Port zurückschreiben
  262.             MOV     AX, 1000h
  263.             MOV     DX, 256
  264.             CALL    TEST64K_D
  265.             MOV     CS:[Time1K], BX
  266.             MOV     AX, 1000h
  267.             MOV     DX, 512
  268.             CALL    TEST64K_D
  269.             MOV     CS:[Time2K], BX
  270.             MOV     AX, 1000h
  271.             MOV     DX, 1024
  272.             CALL    TEST64K_D
  273.             MOV     CS:[Time4K], BX
  274.             MOV     AX, 1000h
  275.             MOV     DX, 2048
  276.             CALL    TEST64K_D
  277.             MOV     CS:[Time8K], BX
  278.             MOV     AX, 1000h
  279.             MOV     DX, 4096
  280.             CALL    TEST64K_D
  281.             MOV     CS:[Time16K], BX
  282.             MOV     AX, 1000h
  283.             MOV     DX, 8192
  284.             CALL    TEST64K_D
  285.             MOV     CS:[Time32K], BX
  286.             MOV     AX, 1000h
  287.             MOV     DX, 16384
  288.             CALL    TEST64K_D
  289.             MOV     CS:[Time64K], BX
  290.             MOV     AX, 1000h
  291.             CALL    TEST128K_D
  292.             MOV     CS:[Time128K], BX
  293.             MOV     AX, 1000h
  294.             CALL    TEST256K_D
  295.             MOV     CS:[Time256K], BX
  296.             MOV     AX, 1000h
  297.             CALL    TEST512K_D
  298.             MOV     CS:[Time512K], BX
  299.             MOV     DX, CS
  300.             MOV     AX, OFFSET [Time1K]
  301.             POP     DS
  302.             POPF
  303.             RET
  304.  
  305.  
  306. TestCach286 PROC    FAR
  307.             PUSHF
  308.             PUSH    DS
  309.             CLI
  310.             CLD
  311.             MOV     AX, 1000h
  312.             IN      AL, 61h              ; Port B - System Control
  313.             AND     AL, 11111101b        ; Lautsprecher-Bit ausschalten
  314.             OR      AL, 1                ; Bit für Clock 2 anschalten
  315.             OUT     61h, AL              ; und auf Port zurückschreiben
  316.             MOV     DX, 512
  317.             CALL    TEST64K_W
  318.             MOV     CS:[Time1K], BX
  319.             MOV     AX, 1000h
  320.             MOV     DX, 1024
  321.             CALL    TEST64K_W
  322.             MOV     CS:[Time2K], BX
  323.             MOV     AX, 1000h
  324.             MOV     DX, 2048
  325.             CALL    TEST64K_W
  326.             MOV     CS:[Time4K], BX
  327.             MOV     AX, 1000h
  328.             MOV     DX, 4096
  329.             CALL    TEST64K_W
  330.             MOV     CS:[Time8K], BX
  331.             MOV     AX, 1000h
  332.             MOV     DX, 8192
  333.             CALL    TEST64K_W
  334.             MOV     CS:[Time16K], BX
  335.             MOV     AX, 1000h
  336.             MOV     DX, 16384
  337.             CALL    TEST64K_W
  338.             MOV     CS:[Time32K], BX
  339.             MOV     AX, 1000h
  340.             MOV     DX, 32768
  341.             CALL    TEST64K_W
  342.             MOV     CS:[Time64K], BX
  343.             MOV     DX, CS
  344.             MOV     AX, OFFSET [Time1K]
  345.             POP     DS
  346.             POPF
  347.             RET
  348. TestCach286 ENDP
  349.  
  350. Time1K      DW      ?
  351. Time2K      DW      ?
  352. Time4K      DW      ?
  353. Time8K      DW      ?
  354. Time16K     DW      ?
  355. Time32K     DW      ?
  356. Time64K     DW      ?
  357. Time128K    DW      ?
  358. Time256K    DW      ?
  359. Time512K    DW      ?
  360.  
  361. TestCache   ENDP
  362.  
  363. CODE        ENDS
  364.  
  365.             END
  366.  
  367.  
  368.